package com.softer.wxzj.controller;

import com.github.pagehelper.PageInfo;
import com.softer.wxzj.common.entity.CommonResult;
import com.softer.wxzj.common.entity.Page;
import com.softer.wxzj.entity.ExcelBuilding;
import com.softer.wxzj.entity.ExcelRegion;
import com.softer.wxzj.service.ExcelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @author Gong Zhiyang
 * @date 2020/7/3
 */
@RestController
@RequestMapping("/excel")
public class ExcelController {
    @Autowired
    private ExcelService excelService;

    /**
     * 上传文件
     *
     * @param file     文件
     * @return 上传结果
     * @throws IOException 异常
     */
    @PostMapping("/upload")
    public CommonResult upload(MultipartFile file) throws IOException {
        return excelService.upload(file);
    }

    /**
     * 撤销导入
     *
     * @param regionId 小区ID
     * @return 撤销结果
     */
    @PostMapping("/revoke")
    public CommonResult revoke(String regionId) {
        return excelService.revoke(regionId);
    }

    /**
     * 确认导入
     *
     * @param regionId 小区ID
     * @param zoneCode 行政区域编码
     * @return 导入结果
     */
    @PostMapping("/confirm")
    public CommonResult confirm(String regionId, String zoneCode) {
        return excelService.confirm(regionId, zoneCode);
    }

    /**
     * 分页查询批量导入的信息
     *
     * @param regionId 小区ID
     * @param page     分页实体
     * @return 房屋列表
     */
    @PostMapping("/getBuildingList")
    public PageInfo<ExcelBuilding> getBuildingList(String regionId, Page page) {
        return excelService.getBuildingList(regionId, page);
    }

    /**
     * 查询小区信息
     *
     * @param regionId 小区ID
     * @return 小区信息
     */
    @PostMapping("/getInfo")
    public ExcelRegion getInfo(String regionId) {
        return excelService.getInfo(regionId);
    }
}
